--
-- Created by IntelliJ IDEA.
-- User: 13911
-- Date: 2019/7/1
-- Time: 18:24
-- To change this template use File | Settings | File Templates.
--

local socket = require("socket.core")
--创建并返回一个无连接的udp对象，
--该对象支持一下函数 sendto、receive、receivefrom、getsockname、
-- setoption、 settimeout、setpeername、setsockname、close
local udp = socket.udp()
local host = host or '127.0.0.1'
local port = '8800'
udp:settimeout(10)
--local udpbind = udp:bind(host,port)
--返回对象绑定的本地地址信息
udp:setsockname(host, port)
print('waiting client connect')
while 1 do
    --从UDP对象收取数据包，IP和端口号
    --如果UDP对象为已连接对象，则只收取其来自其连接对象的数据包，
    -- 都收取的数据包可来自任何主机

    local revbuff,receip,receport = udp:receivefrom()
    if (revbuff and receip and receport) then
        print('revbuff:'..revbuff..',receip:'..receip..',receport:'..receport)
        --发送数据报到指定的IP和端口上
        local sendcli = udp:sendto('hello lua cli',receip,receport)
        if(sendcli) then
            print('sendcli ok')
        else
            print('sendcli error')
        end
    else
        print('waiting client connect')
    end
end
udp:close()

